#ifndef VSqlDataView_H
#define VSqlDataView_H

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

class VSqlDataView : public QFrame
{
	Q_OBJECT

public:
	VSqlDataView(QWidget *parent = 0);
	~VSqlDataView();

	void setModel(VSqlDataModel *model);

	QTableView *view() const { return m_view;}
	QSortFilterProxyModel *proxyModel() const { return m_proxyModel;}
	
	bool insertDirtyRow();
	//bool removeDirtyRow();
	void removeSelectedRows();
	
signals:
	void currentChanged(const VSqlDataColumn &dataColumn,const QVariant &value);
	
private slots:
	void currentChanged(const QModelIndex &current,const QModelIndex &previous);
	
private:
	QTableView *m_view;
	VSqlDataModel *m_model;
	QSortFilterProxyModel *m_proxyModel;
};

///////////////////////////////////////////////////////////////////////////////

class VTableView : public QTableView
{
	Q_OBJECT

public:
	VTableView(VSqlDataView *parent) : m_parent(parent) {}

protected:
	virtual void keyPressEvent(QKeyEvent *event);

private:
	VSqlDataView *m_parent;
};

///////////////////////////////////////////////////////////////////////////////

#endif
